#include <bits/stdc++.h>

using uint=unsigned int;
using ll=long long;
using ull=unsigned long long;
using i128=__int128;

const int N=1e6+5;

struct qj{
    ll l,r;
};

void Solve(){
    
    return;
}

int main(){
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr); std::cout.tie(nullptr);
    int n;
    std::cin>>n;
    std::vector<qj> v(n);
    for(int i=0;i<n;i++){
        std::cin>>v[i].l>>v[i].r;
    }
    ll lastr=v[0].r;
    ll lastl=v[0].l;
    ll ans=0;
    for(int i=1;i<n;i++){
        if(v[i].l<=lastr){
            lastr=v[i].r;
        }
        else{
            ans+=lastr-lastl+1;
            lastl=v[i].l;
            lastr=v[i].r;
        }
    }
    ans+=lastr-lastl+1;
    std::cout<<ans<<std::endl;

    return 0;
}

// 题目：区间覆盖
// 描述：
// 已知有N个区间，每个区间的范围是[si ,ti]，请求出区间覆盖后的总长。区间的长度是指区间内整数的个数。
// 输入格式
// 第一行一个正整数N，表示区间个数。N≤10^5。
// 接下来N行，每行两个正整数，表示si和ti。1≤si<ti≤10^17
// 输出格式
// 共一行，一个正整数，为覆盖后的区间总长。
// 输入样例
// 3
// 1 100000
// 200001 1000000
// 100000000 100000001
// 输出样例
// 900002